home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 16
/
Aminet 16 (1996)(GTI - Schatztruhe)[!][Dec 1996].iso
/
Aminet
/
comm
/
term
/
term_source.lha
/
Extras
/
Source
/
gtlayout-source.lha
/
LTP_Storage.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-10-08
|
4KB
|
229 lines
/*
** GadTools layout toolkit
**
** Copyright © 1993-1996 by Olaf `Olsen' Barthel
** Freely distributable.
**
** :ts=4
*/
#ifndef _GTLAYOUT_GLOBAL_H
#include "gtlayout_global.h"
#endif
VOID
LTP_GetStorage(ObjectNode *Node)
{
if(Node->Storage)
{
LONG Number = 0;
STRPTR String = NULL;
switch(Node->StorageType)
{
case STORAGE_BYTE:
Number = *(BYTE *)Node->Storage;
break;
case STORAGE_UBYTE:
Number = *(UBYTE *)Node->Storage;
break;
case STORAGE_WORD:
Number = *(WORD *)Node->Storage;
break;
case STORAGE_UWORD:
Number = *(UWORD *)Node->Storage;
break;
case STORAGE_LONG:
Number = *(LONG *)Node->Storage;
break;
case STORAGE_ULONG:
Number = *(ULONG *)Node->Storage;
break;
case STORAGE_STRPTR:
String = Node->Storage;
break;
}
switch(Node->Type)
{
case CHECKBOX_KIND:
case LISTVIEW_KIND:
case MX_KIND:
case CYCLE_KIND:
case PALETTE_KIND:
case SLIDER_KIND:
case SCROLLER_KIND:
#if defined(DO_POPUP_KIND) && defined(DO_BOOPSI_KIND)
case POPUP_KIND:
#endif
#if defined(DO_TAB_KIND) && defined(DO_BOOPSI_KIND)
case TAB_KIND:
#endif
#ifdef DO_GAUGE_KIND
case GAUGE_KIND:
#endif
#ifdef DO_TAPEDECK_KIND
case TAPEDECK_KIND:
#endif /* DO_TAPEDECK_KIND */
Node->Current = Number;
break;
case STRING_KIND:
#ifdef DO_PASSWORD_KIND
case PASSWORD_KIND:
#endif
Node->Special.String.String = String;
break;
case INTEGER_KIND:
Node->Special.Integer.Number = Number;
break;
#ifdef DO_LEVEL_KIND
case LEVEL_KIND:
Node->Current = Number;
break;
#endif /* DO_LEVEL_KIND */
}
}
}
/*****************************************************************************/
VOID
LTP_PutStorage(ObjectNode *Node)
{
if(Node->Storage)
{
LONG Number = 0;
STRPTR String = NULL;
switch(Node->Type)
{
case CHECKBOX_KIND:
case LISTVIEW_KIND:
case MX_KIND:
case CYCLE_KIND:
case PALETTE_KIND:
case SLIDER_KIND:
case SCROLLER_KIND:
#if defined(DO_POPUP_KIND) && defined(DO_BOOPSI_KIND)
case POPUP_KIND:
#endif
#if defined(DO_TAB_KIND) && defined(DO_BOOPSI_KIND)
case TAB_KIND:
#endif
#ifdef DO_GAUGE_KIND
case GAUGE_KIND:
#endif
#ifdef DO_TAPEDECK_KIND
case TAPEDECK_KIND:
#endif /* DO_TAPEDECK_KIND */
Number = Node->Current;
break;
#ifdef DO_PASSWORD_KIND
case PASSWORD_KIND:
String = Node->Special.String.RealString;
break;
#endif
case STRING_KIND:
if(Node->Host)
String = ((struct StringInfo *)Node->Host->SpecialInfo)->Buffer;
else
String = Node->Special.String.String;
break;
case INTEGER_KIND:
if(Node->Host)
Number = ((struct StringInfo *)Node->Host->SpecialInfo)->LongInt;
else
Number = Node->Special.Integer.Number;
break;
#ifdef DO_LEVEL_KIND
case LEVEL_KIND:
Number = Node->Current;
break;
#endif /* DO_LEVEL_KIND */
}
switch(Node->StorageType)
{
case STORAGE_BYTE:
if(!String)
*(BYTE *)Node->Storage = (BYTE)Number;
break;
case STORAGE_UBYTE:
if(!String)
*(UBYTE *)Node->Storage = (UBYTE)Number;
break;
case STORAGE_WORD:
if(!String)
*(WORD *)Node->Storage = (WORD)Number;
break;
case STORAGE_UWORD:
if(!String)
*(UWORD *)Node->Storage = (UWORD)Number;
break;
case STORAGE_LONG:
if(!String)
*(LONG *)Node->Storage = (LONG)Number;
break;
case STORAGE_ULONG:
if(!String)
*(ULONG *)Node->Storage = (ULONG)Number;
break;
case STORAGE_STRPTR:
if(String)
strcpy(Node->Storage,String);
break;
}
}
}